#include <iostream>
#include <ctime>
#include <fstream>
using namespace std;

void bubbleSort(int list[], int listLength)
{
    while(listLength--)
    {
        bool swapped = false;

        for(int i = 0; i < listLength; i++)
        {
            if(list[i] > list[i + 1])
            {
                swap(list[i], list[i + 1]);
                swapped = true;
            }
        if(swapped == false) break;
        }
    }
}
void read_from_file(const char *filename, int a[], int length)
{
    ifstream file(filename);

    for(int i = 0; i < length; i++)
    {
        file >> a[i];
    }
}
int main()
{
    int LEN = 5000;
    int a[LEN];

    read_from_file("m1_sorted.txt", a, LEN);
    unsigned int t_start = clock();
    bubbleSort (a, LEN);
    unsigned int t_finish = clock();
    unsigned int t_work = t_finish - t_start;
    cout <<"m1_sorted "<<t_work<<" milliseconds \n";

    read_from_file("m2_reverse.txt", a, LEN);
    t_start = clock();
    bubbleSort(a, LEN);
    t_finish = clock();
    t_work = t_finish - t_start;
    cout <<"m2_reverse "<<t_work<<" milliseconds \n";

    read_from_file("m3_shuffle.txt", a, LEN);
    t_start = clock();
    bubbleSort(a, LEN);
    t_finish = clock();
    t_work = t_finish - t_start;
    cout <<"m3_shuffle "<<t_work<<" milliseconds \n";
    return 0;
}
